A digital signal computer, or digital signal processor (DSP), is a special purpose computer that is designed to optimize performance for digital signal processing applications, such as, for example, fast Fourier transforms, digital filters, image processing and speech recognition. Digital signal processor applications are typically characterized by real time operation, high interrupt rates and intensive numeric computations. In addition, digital signal processor applications tend to be intensive in memory access operations and to require the input and output of large quantities of data. Thus, designs of digital signal processors may be quite different from those of general purpose computers.
One approach that has been used in the architecture of digital signal processors to achieve high speed numeric computation is the Harvard architecture, which utilizes separate, independent program and data memories so that the two memories may be accessed simultaneously. This architecture permits an instruction and an operand to be fetched from memory in a single clock cycle. Current architectures integrate the computation unit and the memory on a single integrated circuit, or chip, to provide a self-contained, high performance digital signal processor.
One important aspect of DSP chips is external communication. Because the DSP processes the large quantities of data, it is necessary to transfer data to and from the internal memory and the computation unit of the DSP chip efficiently and at high speed. The DSP chip typically includes a parallel external bus for communicating with a host computer, an external memory and other external devices such as, for example, an analog-to-digital converter. The external bus may also be used to interconnect two or more DSP chips in a multiprocessor configuration, or cluster, for increased computational capability. The bus architecture provides the ability to transfer information between devices at high speed.
Despite the capabilities provided by the external bus, a need frequently exists for high speed, point-to-point communication between digital signal processors in a multiprocessor configuration or between a digital signal processor and an external device, such as an analog-to-digital converter. The point-to-point communication link may be used for transferring the large quantities of data typically involved in DSP computations without using the external bus, which may be required for other operations.
One well-known approach to point-to-point data transmission is serial communication, wherein data is transmitted serially on a single data line. This technique is efficient with respect to cabling and connections to the DSP chip but is limited in the rate at which data can be transferred.
Parallel data transfer techniques provide the highest speed. However, where multiple communication ports are required, the number of connections to the DSP chip is excessive, and the number of conductors required for each port must be minimized.
A point-to-point communication system for a digital signal processor is disclosed in U.S. Pat. No. 5,619,720 issued Apr. 8, 1997 to Douglas Garde et al. The disclosed communication port is bidirectional and transfers nibbles of four bits at a time on four data lines. While this approach provides highly satisfactory performance, communication with the external device on the external bus of the digital signal processor is required to change the direction of transmission. This approach may produce delays and is relatively complex.
Accordingly, there is a need for improved high speed, point-to-point communication apparatus. The communication apparatus should require a small number of conductors, should be capable of transferring large quantities of data at high speed with minimum overhead and should permit the direction of transmission to easily be changed.